/**
 * 
 */
package com.xb.cloud.product.merchant.service.client;

import java.math.BigDecimal;
import java.util.List;

import com.xb.cloud.product.merchant.service.client.bo.EndMerchantUserBo;
import com.xb.cloud.product.merchant.service.client.input.bo.ProductSkuInputBo;
import com.xb.cloud.product.merchant.service.client.input.bo.ProductSkuPicInputBo;
import com.xb.cloud.service.client.ServiceReturnInfo;

/**
 * 
 * @author kexue
 *
 */
public interface ProductPublishService {
	/**
	 * 根据类目id获取该类目节点下的可发布的商品列表; [分页]
	 * 
	 * @param companyId
	 * @return
	 */
	public ServiceReturnInfo getPublishableProductSummaryBoListByCategoryId(Long categoryId, Long merchantId,
			Long shopId, Integer pageNum, Integer pageSize);

	 /**
	  * 公司级别.
	  */
	public ServiceReturnInfo getPublishableProductSummaryBoListMerchantLevelByCategoryId(Long categoryId, Long companyId,
			Long shopId, Integer pageNum, Integer pageSize);
	
	/**
	 * 根据商品id,获取待发布商品的模板数据
	 * 
	 * @param productId
	 * @return
	 */
	public ServiceReturnInfo getProductTemplateBoByProductId(Long productId);

	/**
	 * 发布Sku
	 * 
	 * @param productId1
	 *            ： 单品id / 系列品的虚品id
	 * @param productId2
	 *            ： productType=0时候当前字段为空 / 系列品的系列产品对应的子品Id
	 * @param endMerchantUserBo
	 *            : 末级商家/店铺终端用户
	 * @param productType
	 *            : productId1对应的产品类型 ， 0:主品 ; 1:虚品
	 * @param detailContent
	 *            : 图文详情的 json/html
	 * @param skuInput
	 *            : sku相关数据
	 * @param priceMarket
	 * @param priceSale
	 * @param   groupIdList分组信息
	 * @return skuId
	 * 
	 */
	public ServiceReturnInfo createProductSku(EndMerchantUserBo endMerchantUserBo, Long productId1, Long productId2,
			Byte productType, List<ProductSkuPicInputBo> skuPics, String detailContentJson,
			ProductSkuInputBo skuInput, BigDecimal priceMarket, BigDecimal priceSale,List<Long> groupIdList);

	

}
